SlideShare a Scribd company logo
1 of 19
王
智
祥
著
1-1 C 的發展史
1-2 C 程式初體驗
1-1-1 C 的起源
1-2-1 程式碼的編寫與儲存
1-2-2 程式碼的編譯與執行
1-2-3 程式碼快速解析
1-3-1 妥善利用函數
1-3-2 適當加以縮排
1-3-3 盡量加上註解
1-4 上機實習課程
1-3 C 程式設計基本
  注意事項
1-1-2 C 的特色與優點
1-1-3 C 的程式執行過程簡介
第一章 C 語言簡介
1-1-1 C 的起源 1-1 C 的發展史
P 1-2
1972 年貝爾實驗室的 Dennis Ritchie 以 B 語言為基礎
,並持續改善它。
除了保留 BCLP 及 B 語言中的許多觀念外,更加入了資
料型態的觀念及其它功能,並且將它發表為「 C 語言」。
Dennis Ritchie 發展出來的 C 語言乃是架構在 DEC PDP-11
電腦上,最初的目的主要是做為開發 Unix 作業系統的工具。
由於 C 語言這樣實用的工具使得 Unix 作業系統開發
難度降低且進行順利,所以也開始應用在其它的程式設
計領域,因此也使得 C 語言迅速受到 人的矚目。眾
1-1-2 C 的特色與優點 (1) 1-1 C 的發展史
P 1-4
程式可攜性高,具有跨平台能力
只要是使用 ANSI C 定義的標準函數庫來開發,而其中不包含一些中斷
處理或廠商單獨提供的函數庫,那麼所開發出來的程式將具有相當高的
可攜性( Portable )。
只要如果將開發出來的 C 語言程式碼拿到不同的作業平台上重新編譯
,隨即能 產生一個功能相同的可執行程式,而程式開發者不再需要重夠
新編撰程式碼內容。
體積小,執行效率高
只要相較於 Java 、 Visual Basic 、 Pascal 等程式語言來說, C 語言
的執行效率相當高,執行時也相當穩定。
1-1-2 C 的特色與優點 (2) 1-1 C 的發展史
P 1-4
具低階處理能力
雖然這些較低階的操作技巧在學習上並不容易,不過卻是其它高階程式
語言難以達成的工作項目。這也是 C 功能較其它語言強大的地方。
作為學習其它語言的基礎
C 語言堪稱是「程式語言之父」,例如 C++ 、 Java 、 PHP 與
C# 等程式語言,它們的基本語法及某些程式觀念都與 C 十分類似。
1-1-3 C 程式執行過程簡介 1-1 C 的發展史
P 1-5
過程通常可區分為「編輯」、「編譯」、「連結」、「載入」與
「執行」五個階段。
目前多半是使用所謂的整合開發環境( IDE , Integrated
Development Environment )來作為 C 的開發環境。
編寫完的程式碼 , 電腦是看不懂的,必需翻譯成電腦能懂的機器
語言模式。
由於 C 是一種編譯式語言,也就是必須使用編譯器將原始程式
翻譯成「目的碼」,副 名為「檔 *.obj 」。
由於使用者編譯的 C 程式中可能會使用到函數庫(副 名為檔
*.lib )中的函數,或者一個程式可能分為數個 案來開發,這些檔
案在編輯為目的 後,必須透過連結器(檔 檔 linker ),最後才會
產生可執行 (副 名為檔 檔 *.exe ) 。
最後載入過程將可執行 與相關的函數庫元件,從磁 中載入到記檔 碟
憶體中,就可準備執行了。
1-2 C 程式初體驗
功能表
程式輸入
游標
編寫
程式區
專案瀏
覽區
1-2 C 程式初體驗
P 1-6
工具列
狀態列
編譯器
輸出
紀錄區
1-2-1 程式碼的編寫與儲存
01 #include <stdio.h>
02 #include <stdlib.h>
03
04 int main(void)
05 {
06 printf("C 程式初體驗 n");/* 呼叫 printf() 函
數 */
07
08 system("pause");
09 return 0;
10 }
1-2 C 程式初體驗
P 1-7
輸入完以上程式碼後,請執行「 案檔 / 儲存」指令或是按工具列上
的「儲存」 鈕,並以「 Ch01_01 」為 名,「檔 .c 」為副 名檔
進行 案儲存。檔
1-2-2 程式碼的編譯與執行
編譯進行中,這還包括
連結與載入過程
1-2 C 程式初體驗
P 1-7
過程按下工具列中的編譯按鈕 或執行「執行 / 編譯」指令,然後會出
現以下視窗,代表 案正在編譯中,如果編譯成功,原本的檔 Compiling
會出現 Done 字樣:
1-2-2 程式碼的編譯與執行 1-2 C 程式初體驗
P 1-7
請執行「執行 / 執行」指令或按下執行鈕 。
將會看到本程式的執行結果:
1-2-3 程式碼快速解析 1-2 C 程式初體驗
P 1-8
程式範例:第一個程式碼範例: CH01_01.c
1-2-3 程式碼快速解析 1-2 C 程式初體驗
P 1-8
第 1~2 行:利用 #include 指令是前置處理指令的一種,在編譯時可將
<stdio.h> 標頭 與檔 <stdlib.h> 標頭 含括進來。檔
第 4 行: C 中的 main() 函數是程式的進入點,而程式的內容則包
含在 main() 下的大括弧 {} 內,而「 void 」表示此函數不
需要任何的引數, int 是宣告函數回傳 是整數資料型態。值
第 5~10 行:表示此函數的所有指令內容。
當然在這兩個大括弧間也可以完全沒有任何指令。
1-2-3 程式碼快速解析 1-2 C 程式初體驗
P 1-9
第 6 行: printf() 是 C 語言的輸出函數指令,會將括號中引號「“」
內的字串輸出到螢幕上,而「 /n 」則是跳脫字元的一種,
有換行的功用,這些輸出功能會在第三章中為 深入說明您
。
至於「 /* 」與「 */ 」符號所包括的部份稱為「註解」。
第 8 行: 由於 Windows 系統正常結束後,都會直接關掉執行視窗,
執行畫面會一閃即逝,根本看不出執行結果。這時可利用
system() 函數呼叫系統參數 pause 會讓程式執行到此先暫
停,並且在執行視窗中會印出 " 請按任意鍵繼續… " 等字
,當 敲下任意鍵後,程式便會往下執行。您
第 9 行: 因為主程式被宣告為 int 資料型態,必須回傳( return )
一個 ,在習慣上是傳回值 0 作為程式執行完畢,在 ANSI
C 語法中,如果這行指令省略,也會自動視為是「 return
0; 」指令。
1-3-1 妥善利用函數
01 int main( )
02 {
03 指令 1;
04 指令 2;
05 .
06 .
07 }
C 語言程式的開頭
C 語言程式的內容
1-3 C 程式設計基本注意事項
P 1-10
當程式開始執行時,一定會先執行 main() 這個函數,而不管
它在程式中的任何位置,編譯器都會找到它才開始編譯程式內
,因此 main() 又稱為「主函數」,架構如下所示:
1-3-1 妥善利用函數
01 int main( )
02 {
03 }
完全無任何的陳述
P 1-10
1-3 C 程式設計基本注意事項
其中第 02 行的左大括弧 { 表示 main() 函式開始,第 07 行的右大括弧 }
則表示 main() 函式的結束。
另外在這兩個大括弧間也可以完全沒有任何內容,
因此一個最簡單的 C 程式可以如下:
1-3-1 妥善利用函數
標 頭 檔 說        明
<math.h> 包含數學運算函數
<stdio.h> 包含標準輸出入函數
<stdlib.h> 標準函數庫,包含各類基本函數。
<string.h> 包含字串處理函數
<time.h> 包含時間、日期的處理函數
 
P 1-11
1-3 C 程式設計基本注意事項
底下列出常見的 C 內建標頭 供做參考:檔
1-3-2 適當加以縮排
Return0; /* 不合法的指令 */
printf
( "C 程式初體驗 n")
; /* 合法的指令 */
printf("C 程式初體驗 !!n"); system("pause"); return 0; /* 合法的指令
*/
print f("C 程式初體驗 !!n"); /* 不合法的指令 */
P 1-12
1-3 C 程式設計基本注意事項
在同一行指令中,對於完整不可分割的單元稱為字符
(token) ,兩個字符間必須以空白鍵、 tab 鍵或輸入
鍵區隔。
請看以下指令範例:
1-3-2 適當加以縮排
P 1-13
1-3 C 程式設計基本注意事項
像是在主程式中包含子區段,
或者子區段中又包含其它子區
段時,這時就可以透過縮排來
區分程式碼的層級。
簡單來說,遇到大括號時就要
考慮縮排。
如以下巢狀 if else 指令,透
過縮排的效果讓,讓區塊層
次更分明:
1-3-3 盡量加上註解
/*
這是我的第一個 C 程式
 它會顯示一小段簡單的文字
*/
中間的內容編譯器
全部不予理會
P 1-13
1-3 C 程式設計基本注意事項
註解不僅可以幫助其他的程式設計師了解程式內容,
在日後進行程式維護時,詳盡的註解也能 省下不少夠
維護時間與成本。
在 C 中「 /* 」與「 */ 」間的文字都屬於註解內容。
  另外註解也能 跨行使用。夠
如下所示:
1-4 上機實習課程
P 1-8
1-4 上機實習課
程
上機實習範例: CH01_02.c
執行結果

More Related Content

What's hot

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
C#语言的演化
C#语言的演化C#语言的演化
C#语言的演化TerabyteX
 
软件工程 第六章
软件工程 第六章软件工程 第六章
软件工程 第六章浒 刘
 
C語言 第4章 Ch04 02
C語言 第4章 Ch04 02C語言 第4章 Ch04 02
C語言 第4章 Ch04 02shademoon
 
C 语言概述
C 语言概述C 语言概述
C 语言概述zhangxl
 

What's hot (9)

系統程式 -- 第 5 章
系統程式 -- 第 5 章系統程式 -- 第 5 章
系統程式 -- 第 5 章
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
C#语言的演化
C#语言的演化C#语言的演化
C#语言的演化
 
系統程式 -- 第 7 章
系統程式 -- 第 7 章系統程式 -- 第 7 章
系統程式 -- 第 7 章
 
系統程式 - 附錄
系統程式 - 附錄系統程式 - 附錄
系統程式 - 附錄
 
软件工程 第六章
软件工程 第六章软件工程 第六章
软件工程 第六章
 
C語言 第4章 Ch04 02
C語言 第4章 Ch04 02C語言 第4章 Ch04 02
C語言 第4章 Ch04 02
 
C 语言概述
C 语言概述C 语言概述
C 语言概述
 
10401_206296_Hw12
10401_206296_Hw1210401_206296_Hw12
10401_206296_Hw12
 

Viewers also liked

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
10 檔案說明與處理
10 檔案說明與處理10 檔案說明與處理
10 檔案說明與處理shademoon
 
09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態shademoon
 
07 陣列與字串
07 陣列與字串07 陣列與字串
07 陣列與字串shademoon
 
06 函數與巨集
06 函數與巨集06 函數與巨集
06 函數與巨集shademoon
 

Viewers also liked (8)

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
08 指標
08 指標08 指標
08 指標
 
10 檔案說明與處理
10 檔案說明與處理10 檔案說明與處理
10 檔案說明與處理
 
09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態
 
07 陣列與字串
07 陣列與字串07 陣列與字串
07 陣列與字串
 
06 函數與巨集
06 函數與巨集06 函數與巨集
06 函數與巨集
 

Similar to 第六章 函數與巨集

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
110922 knoss-vol26-c++运行库
110922 knoss-vol26-c++运行库110922 knoss-vol26-c++运行库
110922 knoss-vol26-c++运行库Zoom Quiet
 
Hcsm lect-20120913
Hcsm lect-20120913Hcsm lect-20120913
Hcsm lect-20120913lusecheng
 
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509tidesq
 
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版逸 張
 
Introduction to C++ over CLI
Introduction to C++ over CLIIntroduction to C++ over CLI
Introduction to C++ over CLI建興 王
 
用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验Leo Zhou
 
xwz 2010-10-31
xwz 2010-10-31xwz 2010-10-31
xwz 2010-10-31carlxwz
 
Python 入门
Python 入门Python 入门
Python 入门kuco945
 
ajax_onlinemad
ajax_onlinemadajax_onlinemad
ajax_onlinemadKitor23
 
Uc gui中文手册
Uc gui中文手册Uc gui中文手册
Uc gui中文手册호연 최
 

Similar to 第六章 函數與巨集 (20)

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
C 1 c
C 1 cC 1 c
C 1 c
 
C 1 c
C 1 cC 1 c
C 1 c
 
C 1 c
C 1 cC 1 c
C 1 c
 
C++
C++C++
C++
 
110922 knoss-vol26-c++运行库
110922 knoss-vol26-c++运行库110922 knoss-vol26-c++运行库
110922 knoss-vol26-c++运行库
 
C+
C+C+
C+
 
Hcsm lect-20120913
Hcsm lect-20120913Hcsm lect-20120913
Hcsm lect-20120913
 
建置Python開發環境
建置Python開發環境建置Python開發環境
建置Python開發環境
 
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
 
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
 
Introduction to C++ over CLI
Introduction to C++ over CLIIntroduction to C++ over CLI
Introduction to C++ over CLI
 
用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验
 
xwz 2010-10-31
xwz 2010-10-31xwz 2010-10-31
xwz 2010-10-31
 
Python 入门
Python 入门Python 入门
Python 入门
 
C語言初體驗
C語言初體驗C語言初體驗
C語言初體驗
 
ajax_onlinemad
ajax_onlinemadajax_onlinemad
ajax_onlinemad
 
系統程式 -- 附錄
系統程式 -- 附錄系統程式 -- 附錄
系統程式 -- 附錄
 
Uc gui中文手册
Uc gui中文手册Uc gui中文手册
Uc gui中文手册
 

More from shademoon

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
C語言 第五章 程式流程控制
C語言 第五章 程式流程控制C語言 第五章 程式流程控制
C語言 第五章 程式流程控制shademoon
 
C語言 第五章 Ch05 05
C語言 第五章 Ch05 05C語言 第五章 Ch05 05
C語言 第五章 Ch05 05shademoon
 
C語言 第五章 Ch05 18
C語言 第五章 Ch05 18C語言 第五章 Ch05 18
C語言 第五章 Ch05 18shademoon
 
C語言 第4章 Ch04 01
C語言 第4章 Ch04 01C語言 第4章 Ch04 01
C語言 第4章 Ch04 01shademoon
 
C語言 第4章 基本輸出與輸入功能
C語言 第4章 基本輸出與輸入功能C語言 第4章 基本輸出與輸入功能
C語言 第4章 基本輸出與輸入功能shademoon
 
C語言 第三章 03 運算子、運算元與運算式
C語言 第三章 03 運算子、運算元與運算式C語言 第三章 03 運算子、運算元與運算式
C語言 第三章 03 運算子、運算元與運算式shademoon
 
C語言 第二章 02 C的資料處理
C語言 第二章 02 C的資料處理C語言 第二章 02 C的資料處理
C語言 第二章 02 C的資料處理shademoon
 
計概筆記2
計概筆記2計概筆記2
計概筆記2shademoon
 
3 11英文單字
3 11英文單字3 11英文單字
3 11英文單字shademoon
 
計概筆記1
計概筆記1計概筆記1
計概筆記1shademoon
 

More from shademoon (12)

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
C語言 第五章 程式流程控制
C語言 第五章 程式流程控制C語言 第五章 程式流程控制
C語言 第五章 程式流程控制
 
C語言 第五章 Ch05 05
C語言 第五章 Ch05 05C語言 第五章 Ch05 05
C語言 第五章 Ch05 05
 
C語言 第五章 Ch05 18
C語言 第五章 Ch05 18C語言 第五章 Ch05 18
C語言 第五章 Ch05 18
 
C語言 第4章 Ch04 01
C語言 第4章 Ch04 01C語言 第4章 Ch04 01
C語言 第4章 Ch04 01
 
C語言 第4章 基本輸出與輸入功能
C語言 第4章 基本輸出與輸入功能C語言 第4章 基本輸出與輸入功能
C語言 第4章 基本輸出與輸入功能
 
C語言 第三章 03 運算子、運算元與運算式
C語言 第三章 03 運算子、運算元與運算式C語言 第三章 03 運算子、運算元與運算式
C語言 第三章 03 運算子、運算元與運算式
 
C語言 第二章 02 C的資料處理
C語言 第二章 02 C的資料處理C語言 第二章 02 C的資料處理
C語言 第二章 02 C的資料處理
 
計概筆記2
計概筆記2計概筆記2
計概筆記2
 
3 11英文單字
3 11英文單字3 11英文單字
3 11英文單字
 
計概筆記1
計概筆記1計概筆記1
計概筆記1
 

第六章 函數與巨集

  • 1. 王 智 祥 著 1-1 C 的發展史 1-2 C 程式初體驗 1-1-1 C 的起源 1-2-1 程式碼的編寫與儲存 1-2-2 程式碼的編譯與執行 1-2-3 程式碼快速解析 1-3-1 妥善利用函數 1-3-2 適當加以縮排 1-3-3 盡量加上註解 1-4 上機實習課程 1-3 C 程式設計基本   注意事項 1-1-2 C 的特色與優點 1-1-3 C 的程式執行過程簡介 第一章 C 語言簡介
  • 2. 1-1-1 C 的起源 1-1 C 的發展史 P 1-2 1972 年貝爾實驗室的 Dennis Ritchie 以 B 語言為基礎 ,並持續改善它。 除了保留 BCLP 及 B 語言中的許多觀念外,更加入了資 料型態的觀念及其它功能,並且將它發表為「 C 語言」。 Dennis Ritchie 發展出來的 C 語言乃是架構在 DEC PDP-11 電腦上,最初的目的主要是做為開發 Unix 作業系統的工具。 由於 C 語言這樣實用的工具使得 Unix 作業系統開發 難度降低且進行順利,所以也開始應用在其它的程式設 計領域,因此也使得 C 語言迅速受到 人的矚目。眾
  • 3. 1-1-2 C 的特色與優點 (1) 1-1 C 的發展史 P 1-4 程式可攜性高,具有跨平台能力 只要是使用 ANSI C 定義的標準函數庫來開發,而其中不包含一些中斷 處理或廠商單獨提供的函數庫,那麼所開發出來的程式將具有相當高的 可攜性( Portable )。 只要如果將開發出來的 C 語言程式碼拿到不同的作業平台上重新編譯 ,隨即能 產生一個功能相同的可執行程式,而程式開發者不再需要重夠 新編撰程式碼內容。 體積小,執行效率高 只要相較於 Java 、 Visual Basic 、 Pascal 等程式語言來說, C 語言 的執行效率相當高,執行時也相當穩定。
  • 4. 1-1-2 C 的特色與優點 (2) 1-1 C 的發展史 P 1-4 具低階處理能力 雖然這些較低階的操作技巧在學習上並不容易,不過卻是其它高階程式 語言難以達成的工作項目。這也是 C 功能較其它語言強大的地方。 作為學習其它語言的基礎 C 語言堪稱是「程式語言之父」,例如 C++ 、 Java 、 PHP 與 C# 等程式語言,它們的基本語法及某些程式觀念都與 C 十分類似。
  • 5. 1-1-3 C 程式執行過程簡介 1-1 C 的發展史 P 1-5 過程通常可區分為「編輯」、「編譯」、「連結」、「載入」與 「執行」五個階段。 目前多半是使用所謂的整合開發環境( IDE , Integrated Development Environment )來作為 C 的開發環境。 編寫完的程式碼 , 電腦是看不懂的,必需翻譯成電腦能懂的機器 語言模式。 由於 C 是一種編譯式語言,也就是必須使用編譯器將原始程式 翻譯成「目的碼」,副 名為「檔 *.obj 」。 由於使用者編譯的 C 程式中可能會使用到函數庫(副 名為檔 *.lib )中的函數,或者一個程式可能分為數個 案來開發,這些檔 案在編輯為目的 後,必須透過連結器(檔 檔 linker ),最後才會 產生可執行 (副 名為檔 檔 *.exe ) 。 最後載入過程將可執行 與相關的函數庫元件,從磁 中載入到記檔 碟 憶體中,就可準備執行了。
  • 6. 1-2 C 程式初體驗 功能表 程式輸入 游標 編寫 程式區 專案瀏 覽區 1-2 C 程式初體驗 P 1-6 工具列 狀態列 編譯器 輸出 紀錄區
  • 7. 1-2-1 程式碼的編寫與儲存 01 #include <stdio.h> 02 #include <stdlib.h> 03 04 int main(void) 05 { 06 printf("C 程式初體驗 n");/* 呼叫 printf() 函 數 */ 07 08 system("pause"); 09 return 0; 10 } 1-2 C 程式初體驗 P 1-7 輸入完以上程式碼後,請執行「 案檔 / 儲存」指令或是按工具列上 的「儲存」 鈕,並以「 Ch01_01 」為 名,「檔 .c 」為副 名檔 進行 案儲存。檔
  • 8. 1-2-2 程式碼的編譯與執行 編譯進行中,這還包括 連結與載入過程 1-2 C 程式初體驗 P 1-7 過程按下工具列中的編譯按鈕 或執行「執行 / 編譯」指令,然後會出 現以下視窗,代表 案正在編譯中,如果編譯成功,原本的檔 Compiling 會出現 Done 字樣:
  • 9. 1-2-2 程式碼的編譯與執行 1-2 C 程式初體驗 P 1-7 請執行「執行 / 執行」指令或按下執行鈕 。 將會看到本程式的執行結果:
  • 10. 1-2-3 程式碼快速解析 1-2 C 程式初體驗 P 1-8 程式範例:第一個程式碼範例: CH01_01.c
  • 11. 1-2-3 程式碼快速解析 1-2 C 程式初體驗 P 1-8 第 1~2 行:利用 #include 指令是前置處理指令的一種,在編譯時可將 <stdio.h> 標頭 與檔 <stdlib.h> 標頭 含括進來。檔 第 4 行: C 中的 main() 函數是程式的進入點,而程式的內容則包 含在 main() 下的大括弧 {} 內,而「 void 」表示此函數不 需要任何的引數, int 是宣告函數回傳 是整數資料型態。值 第 5~10 行:表示此函數的所有指令內容。 當然在這兩個大括弧間也可以完全沒有任何指令。
  • 12. 1-2-3 程式碼快速解析 1-2 C 程式初體驗 P 1-9 第 6 行: printf() 是 C 語言的輸出函數指令,會將括號中引號「“」 內的字串輸出到螢幕上,而「 /n 」則是跳脫字元的一種, 有換行的功用,這些輸出功能會在第三章中為 深入說明您 。 至於「 /* 」與「 */ 」符號所包括的部份稱為「註解」。 第 8 行: 由於 Windows 系統正常結束後,都會直接關掉執行視窗, 執行畫面會一閃即逝,根本看不出執行結果。這時可利用 system() 函數呼叫系統參數 pause 會讓程式執行到此先暫 停,並且在執行視窗中會印出 " 請按任意鍵繼續… " 等字 ,當 敲下任意鍵後,程式便會往下執行。您 第 9 行: 因為主程式被宣告為 int 資料型態,必須回傳( return ) 一個 ,在習慣上是傳回值 0 作為程式執行完畢,在 ANSI C 語法中,如果這行指令省略,也會自動視為是「 return 0; 」指令。
  • 13. 1-3-1 妥善利用函數 01 int main( ) 02 { 03 指令 1; 04 指令 2; 05 . 06 . 07 } C 語言程式的開頭 C 語言程式的內容 1-3 C 程式設計基本注意事項 P 1-10 當程式開始執行時,一定會先執行 main() 這個函數,而不管 它在程式中的任何位置,編譯器都會找到它才開始編譯程式內 ,因此 main() 又稱為「主函數」,架構如下所示:
  • 14. 1-3-1 妥善利用函數 01 int main( ) 02 { 03 } 完全無任何的陳述 P 1-10 1-3 C 程式設計基本注意事項 其中第 02 行的左大括弧 { 表示 main() 函式開始,第 07 行的右大括弧 } 則表示 main() 函式的結束。 另外在這兩個大括弧間也可以完全沒有任何內容, 因此一個最簡單的 C 程式可以如下:
  • 15. 1-3-1 妥善利用函數 標 頭 檔 說        明 <math.h> 包含數學運算函數 <stdio.h> 包含標準輸出入函數 <stdlib.h> 標準函數庫,包含各類基本函數。 <string.h> 包含字串處理函數 <time.h> 包含時間、日期的處理函數   P 1-11 1-3 C 程式設計基本注意事項 底下列出常見的 C 內建標頭 供做參考:檔
  • 16. 1-3-2 適當加以縮排 Return0; /* 不合法的指令 */ printf ( "C 程式初體驗 n") ; /* 合法的指令 */ printf("C 程式初體驗 !!n"); system("pause"); return 0; /* 合法的指令 */ print f("C 程式初體驗 !!n"); /* 不合法的指令 */ P 1-12 1-3 C 程式設計基本注意事項 在同一行指令中,對於完整不可分割的單元稱為字符 (token) ,兩個字符間必須以空白鍵、 tab 鍵或輸入 鍵區隔。 請看以下指令範例:
  • 17. 1-3-2 適當加以縮排 P 1-13 1-3 C 程式設計基本注意事項 像是在主程式中包含子區段, 或者子區段中又包含其它子區 段時,這時就可以透過縮排來 區分程式碼的層級。 簡單來說,遇到大括號時就要 考慮縮排。 如以下巢狀 if else 指令,透 過縮排的效果讓,讓區塊層 次更分明:
  • 18. 1-3-3 盡量加上註解 /* 這是我的第一個 C 程式  它會顯示一小段簡單的文字 */ 中間的內容編譯器 全部不予理會 P 1-13 1-3 C 程式設計基本注意事項 註解不僅可以幫助其他的程式設計師了解程式內容, 在日後進行程式維護時,詳盡的註解也能 省下不少夠 維護時間與成本。 在 C 中「 /* 」與「 */ 」間的文字都屬於註解內容。   另外註解也能 跨行使用。夠 如下所示:
  • 19. 1-4 上機實習課程 P 1-8 1-4 上機實習課 程 上機實習範例: CH01_02.c 執行結果